#include<deque>
#include<iostream>
#include<vector>
using namespace std;
namespace bit
{
    template<class T, class Con = deque<T>>

    class stack

    {

    public:

        stack()
        {};

        void push(const T& x)
        {
            _c.push_back(x);


        }

        void pop()
        {
            _c.pop_back();


        }

        T& top()
        {

            return  _c.back();


        }

        const T& top()const
        {

            return  _c.back();


        }

        size_t size()const
        {

            return _c.size();

        }

        bool empty()const
        {

            return  _c.empty();


        }

    private:

        Con _c;
    };
    
}
    int main()
    {
        bit::stack<int>st;
        st.push(1);
        st.push(2);
        st.push(3);
        st.push(4);
        while (!st.empty())
        {
            cout << st.top() << " ";
            st.pop();




        }






    }